Since the earliest days of electrical computing, processors have been utilized to perform various tasks by executing computer program instructions stored in electronic memory. As time passed, various technological developments facilitated building smaller and more reliable electronic devices. Processors manufactured as a single integrated circuit became prevalent. Implementing a processor on a single die resulted in a smaller processor size and, thus, faster switching times. As processing capabilities increased and size decreased, personal computers using these processors gained popularity. The decrease in size has also allowed the use of embedded processors in everyday modern devices, such as personal electronics, automobiles, and industrial machinery.
More recently, multi-core processors have been developed that combine two or more independent processing cores into a single package having a single integrated circuit (‘IC’). Each processing core includes processing circuitry implemented in the IC, which enables performance gains. However, special programming is required so that software executed by the multi-core processor can take advantage of the multi-core architecture, which increases design complexity and makes software development more difficult. In addition, multi-core processors may use more power than traditional single core processors.